﻿using System;

namespace _109_将元组作为返回值_元组
{
    class Program
    {
        static void Main(string[] args)
        {
            //不对字段进行重命名直接输出
            var zoomla1 = GetDate();
            Console.WriteLine("未对字段重命名直接输出：");
            Console.WriteLine("Item1={0},Item2={1},Item3={2}", zoomla1.Item1, zoomla1.Item2, zoomla1.Item3);

            //获取返回的元组后并对字段重命名
            var (Mark1, count, Mark2) = GetDate();
            Console.WriteLine("\n\n重命名字段后：");
            Console.WriteLine($"{nameof(Mark1)}={Mark1},{nameof(count)}={count},{nameof(Mark2)}={Mark2}");

            //获取带命名字段的返回值
            var zoomla2 = GetNumbers();
            Console.WriteLine("\n返回带重命名字段的元组：");
            Console.WriteLine($"{nameof(zoomla2.Number1)}={zoomla2.Number1},{nameof(zoomla2.Number2)}={zoomla2.Number2}");

        }


        //元组可以充当返回方法，先定义一个三元组的方法 
        static (string, int, string) GetDate()
        {
            return ("Test 1", 25, "Test 2");
        }

        static (int Number1,int Number2) GetNumbers()
        {
            Random rand = new Random();
            return (rand.Next(0, 1000), rand.Next(0, 10000));
        }

    }

}
